﻿// This software is the confidential and proprietary information of NetBay.
// Such confidential information should not be disclosed.
// NetBay copyright(c) 2012

#region

using System.ServiceModel;

#endregion

namespace Rio.Workflow.Runtime
{
    /// <summary>
    /// Chrono generation request
    /// </summary>
    [MessageContract(WrapperName = "ChronoRequest", IsWrapped = true)]
    public class ChronoRequest
    {
        #region Constructors

        /// <summary>
        /// Initializes a new instance of the <see cref="ChronoRequest" /> class.
        /// </summary>
        public ChronoRequest()
        {
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="ChronoRequest" /> class.
        /// </summary>
        /// <param name="folderTypeId">The folder type id.</param>
        /// <param name="userId">The user id.</param>
        /// <param name="InputedValue">The inputed value.</param>
        public ChronoRequest(long folderTypeId, long userId, string InputedValue)
        {
            FolderTypeIdentifier = folderTypeId;
            UserId = userId;
            InputedFlowTypeValue = InputedValue;
        }

        #endregion

        #region Instance Properties

        /// <summary>
        /// Gets or sets the folder type identifier.
        /// </summary>
        /// <value>The folder type identifier.</value>
        [MessageBodyMember(Order = 0)]
        public long FolderTypeIdentifier { get; set; }

        /// <summary>
        /// Gets or sets the inputed flow type value.
        /// </summary>
        /// <value>The inputed flow type value.</value>
        [MessageBodyMember(Order = 2)]
        public string InputedFlowTypeValue { get; set; }

        /// <summary>
        /// Gets or sets the user id.
        /// </summary>
        /// <value>The user id.</value>
        [MessageBodyMember(Order = 1)]
        public long UserId { get; set; }

        #endregion

        #region Instance Methods

        /// <summary>
        /// Returns a <see cref="T:System.String" /> that represents the current
        /// <see cref="T:System.Object" />.
        /// </summary>
        /// <returns>
        /// A <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.
        /// </returns>
        public override string ToString()
        {
            return string.Format("FolderTypeIdentifier: {0}, UserId: {1}, InputedFlowTypeValue: {2}",
                                 FolderTypeIdentifier, UserId, InputedFlowTypeValue);
        }

        #endregion
    }
}